B站视频CID & 弹幕文件获取 |
您所在的位置:网站首页 › bilibili 标签 › B站视频CID & 弹幕文件获取 |
在某些特殊的时刻,我们有时可能会需要获取CID以及弹幕文件,这一个时候我们可以使用B站自带的API或者浏览器的控制台进行获取他们。(注意以下方法属于个人研究,不是 B 站官方提供的正式服务,随时可能会失效)(由于B站更新了API,本次更新较多,前面的方法大部分都已经失效) 1、控制台获取CID [当前仍可以使用] 以这一个视频为例,我们在电脑浏览器上按F12(开发者模式,Safari为Option+Command+I),进入控制台,直接输入cid后按回车,返回的值即为当前所在p的CID。 举例: · 2021年2月21日更新: 由于现在B站已经将cid直接嵌入至网页HTML中,如果需要获得对应的所有p的cid,可以直接在控制台中输入: 返回的JSON值中就包含了所有p的cid(示例可能会较长,如果要参考,可以到页面底部查看) 2、B站API获取CID(新API)[当前仍可以使用] 以这一个视频(BV1kK4y1Y7Zq)为例,我们在电脑浏览器上按F12(开发者模式,Safari为Option+Command+I),进入“网络”选项卡,可以找到右侧的这样的一串数据,中间就存在了CID值。 我们在这里的“标头”部分,不难发现,这里有一个链接:https://api.bilibili.com/x/player/pagelist?bvid=BV1kK4y1Y7Zq&jsonp=jsonp 返回数据示例: 这里的数据,是按照p的顺序进行排列的。举个例子,如果我们要获取第一个p的CID号,只需要找到第一个CID值就可以了。第二个p就是第二个CID值,以此类推。(注意在输入时,需要替换BV号为对应视频的BV号) 3、B站API获取CID(旧API)[当前已经无法使用] 这一个方式略繁琐一些,建议优先选择前两者方式,这一个方式B站目前也是能够支持的。 思路:API转换,将视频BV号转换为AV号,再用另外一个API,将视频AV号转换为CID。 以这一个视频(BV1Jt411B7M5)为例,我们将BV号填入 的最后。例如这一个视频就是 返回数据示例: 在返回的数据中,我们可以获取到这一个视频的aid(AV号),以上面的视频为例,aid值为39596505。 接下来,我们将我们获得的aid,填入 的最后。例如这一个视频就是 返回数据示例(当前已经无法复现): 此处获取对应p的方式同第二种,在这里就不赘述了。 弹幕XML文件获取(当前弹幕池)(新方法)[当前可用] 前置条件:通过上述方式获取CID 注意:此方式可能会出现部分无法解析的数据,如果要获得时间等信息,可以参考旧方法 以这一个视频(BV1kK4y1Y7Zq)为例,前面我们已经获得了它的第一p的CID是227684649,我们只需将以下链接 中的{cid}替换成CID即可。例如获取这一个视频的第一p的弹幕XML文件,就是 至此,你就可以获得视频对应的弹幕文件了。 使用文本编辑器(例如Visual Studio Code)打开,选择UTF-8的编码格式,就可以看到里面的弹幕内容了。 弹幕XML文件获取(当前弹幕池)(旧方法)[当前已经失效] 前置条件:通过上述方式获取CID 以这一个视频(BV1kK4y1Y7Zq)为例,前面我们已经获得了它的第一p的CID是227684649,我们只需将以下链接 中的{}替换成CID即可。例如获取这一个视频的第一p的弹幕XML文件,就是 至此,你就可以获得视频对应的弹幕XML文件了。 弹幕文件获取(历史弹幕)(新方法)[当前可用] 前置条件:通过上述方式获取CID,已经登录B站 注意:此方式可能会出现部分无法解析的数据(例如时间、颜色等) 以这一个视频(BV1Js411o76u)为例,我们通过上面的方式,已经获得了它的第一p的CID是1176840,我们需要将以下链接 中的{cid}替换为CID,{date}替换为对应的时间,例如,我想要查询2013年10月26日的弹幕,可以访问 这里返回的就是那一天的历史文件了(如果短时间内查询过多,可能会触发风控412报错,建议延长间隔时间,风控后可能需要等待一段时间后才可以进行再次获取)。通过这些历史弹幕的组合,你就可以获得全弹幕了~ 弹幕XML文件获取(历史弹幕)[当前已经失效] 前置条件:通过上述方式获取CID,已经登录B站 以这一个视频(BV1Js411o76u)为例,我们通过上面的方式,已经获得了它的第一p的CID是1176840,我们只需将以下链接 https://api.bilibili.com/x/v2/dm/history?type=1&oid={cid}&date={date} 中的{cid}替换为CID,{date}替换为对应的时间,例如,我想要查询2013年10月26日的弹幕,可以访问 https://api.bilibili.com/x/v2/dm/history?type=1&oid=1176840&date=2013-10-26 这里返回的就是那一天的历史文件了(如果短时间内查询过多,可能会触发风控412报错,建议延长间隔时间,风控后可能需要等待一段时间后才可以进行再次获取)。通过这些历史弹幕的组合,你就可以获得全弹幕了~ 对于视频的CID获取的python程序,目前已在https://github.com/g497813927/Bilibili_BV_Converter发布,欢迎下载使用~ 附录: 控制台获取CID示例(JSON部分): |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |